﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Kaffekonsumtion
{
    public partial class frmRapport : Form
    {
        public frmRapport()
        {
            InitializeComponent();
        }

        private Rapport rapport = null;
        private List<string> avdelning = new List<string>();

        public Rapport GetNewRapport()
        {
            this.ShowDialog();
            return rapport;
        }

        private void btnSkicka_Click(object sender, EventArgs e)
        {
            if (IsValidData())
            {
                DateTime datum = new DateTime(Convert.ToInt32(cbxDatumAr.SelectedItem.ToString()),
                    Convert.ToInt32(cbxDatumManad.SelectedItem.ToString()),
                    Convert.ToInt32(cbxDatumDag.SelectedItem.ToString()));

                rapport = new Rapport(avdelning[cbxValjProfil.SelectedIndex], datum,
                     Convert.ToInt32(cbxAntalKoppar.Text));

                this.Close();
            }
        }
        private bool IsValidData()
        {
            return
                Validator.IsWithinRange(cbxDatumAr, 2011, 2018) &&
                Validator.IsWithinRange(cbxDatumManad, 1, 12) &&
                Validator.IsWithinRange(cbxDatumDag, 1, 31) &&
           Validator.IsWithinRange(cbxAntalKoppar, 1, 15);
            

        }
        
        private bool IsChosenData()
        {
            if (cbxValjProfil.SelectedIndex == -1)
            {
                MessageBox.Show("Du måste välja en profil.", "Fel meddelande");
                cbxValjProfil.Focus();
                return false;
            }
            return true;
        }

        private List<Profil> profiler = null;

        private void rapportFormular_Load(object sender, EventArgs e)
        {
            profiler = DataBasHanterare.GetProfil();
            foreach (Profil p in profiler)
            {
                cbxValjProfil.Items.Add(p.Namn);
                avdelning.Add(p.Avdelning);
            }

            

            // lägg till nummer 1 - 15 till combo boxen för antal koppar
            for (int i = 1; i < 16; i++)
                cbxAntalKoppar.Items.Add(i);

            // välj index 0 (1 kopp) som default värde
            cbxAntalKoppar.SelectedIndex = 0;

            
            // lägg till nummer 2011 - 2018 till combo boxen för årtal
            int ar = DateTime.Today.Year;
            int slutar = ar + 8;
            while (ar < slutar)
            {
                cbxDatumAr.Items.Add(ar);
                ar++;
            }

            // välj index 0 (2011) som default värde
            cbxDatumAr.SelectedIndex = 0;

            // lägg till månader till combo boxen för månad
            int manad = DateTime.Today.Month;
            int maxManad = DateTime.MaxValue.Month;
            while (manad <= maxManad)
            {
                cbxDatumManad.Items.Add(manad);
                manad++;
            }

            // välj index 0(aktuell månad) som default värde
            cbxDatumManad.SelectedIndex = 0;

            // lägg till dagar till combo boxen för dagar
            int dag = DateTime.Today.Day;
            int maxDagar = DateTime.MaxValue.Day;
            while (dag <= maxDagar)
            {
                cbxDatumDag.Items.Add(dag);
                dag++;
            }
            // välj index 0 (aktuell datum) som default värde
            cbxDatumDag.SelectedIndex = 0;

        }

        private void btnTillbakaRapport_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
